import { createRouter, createWebHistory } from 'vue-router'
import Login from '@/views/Login.vue'
import Dashboard from '@/views/dashboard/Dashboard.vue'
import Home from '@/views/Home.vue'

export const routes = [
  { path: '/', redirect: '/home' },
  { path: '/login', name: 'login', component: Login },
  {
    path: '/home',
    name: 'home',
    component: Home,
    children: [
      { path: '', name: 'home-default', component: () => import('@/views/dashboard/Found.vue') },
      { path: 'found', name: 'found', component: () => import('@/views/dashboard/Found.vue') }, //备选路径，虽然home-defalut顶替了这个路径，留给以后扩展使用
      { path: 'inform', name: 'inform', component: () => import('@/views/dashboard/Inform.vue') },
      {
        path: 'promotion',
        name: 'promotion',
        component: () => import('@/views/dashboard/Promotion.vue'),
      },
      {
        path: 'shoppingcart',
        name: 'shoppingcart',
        component: () => import('@/views/dashboard/ShoppingCart.vue'),
      },
      {
        path: 'publish',
        name: 'publish',
        component: () => import('@/views/dashboard/Publish.vue'),
      },
      { path: 'trends', name: 'trends', component: () => import('@/views/dashboard/Trends.vue') },
    ],
  },
  { path: '/dashboard', name: 'dashboard', component: Dashboard },
  // 输入不合规的页面都将跳到404页面
  { path: '/notFound', component: import('../views/404.vue') },
  { path: '/:pathMatch(.*)', redirect: '/notFound' }, //捕获所有未匹配的路径，并重定向到啊/notFound。
]

//用createRouter创建一个路由实例router。
const router = createRouter({
  //配置项说明：
  scrollBehavior: (): { left: number; top: number } => ({ left: 0, top: 0 }), //控制页面切换时滚动条的位置，默认回到顶部。
  history: createWebHistory(), //使用 HTML5 的 history 模式，URL 看起来像普通路径（如 /dashboard）而不是哈希路径（如 #/dashboard）。
  routes, //传入前面定义的路由规则。
})

//全局前置守卫，每次路由切换时都会出发。
//_to 表示目标路由，_from 表示当前离开的路由，next() 表示允许导航继续。
router.beforeEach((_to, _from, next) => {
  next()
  //当前代码中没有实际逻辑，仅作为占位符，可以用来添加权限验证等功能。
})

//将创建的路由实例导出，供其他文件（如主应用 main.ts）使用，以集成到 Vue 应用中。
export default router
